package love.bot.forli.group.review.service;

import com.baomidou.mybatisplus.extension.service.IService;
import love.bot.forli.group.review.bean.Dto.ResultDto;
import love.bot.forli.group.review.bean.Dto.TestDto;
import love.bot.forli.group.review.bean.Dto.TestViewDto;
import love.bot.forli.group.review.bean.Result;
import love.bot.forli.group.review.bean.Vo.CreateVo;
import love.bot.forli.group.review.bean.Vo.SubmitVo;
import love.bot.forli.group.review.entity.Test;

/**
 * @author Kontori
 */
public interface TestService extends IService<Test> {

    /**
     * 创建随机试题
     *
     * @param createVo 创建试题Vo
     * @return 创建状态
     */
    Result<Object> createTest(CreateVo createVo);

    /**
     * 提交测试
     *
     * @param submitVo 提交Vo
     * @return 测试结果，若通过，则同时返回入群码
     */
    Result<ResultDto> submitTest(SubmitVo submitVo);

    /**
     * 获取试题答题情况
     *
     * @param testId 测试ID
     * @return TestViewDto
     */
    Result<TestViewDto> view(Integer testId);

    /**
     * 获取试题
     * @param testId 测试ID
     * @return TestDto
     */
    Result<TestDto> getTest(Integer testId);

    /**
     * 删除试题
     * @param testId 测试ID
     * @return String
     */
    Result<String> delete(Integer testId);

}
